<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var obj = {
            name: 'tom',
            age: 18,
        }
        function add(a, b, c) {
            console.log(a + b + c)
        }
        // call和apply的区别
        // add.call(obj,1,2,3)//逐个传参
        // add.apply(obj,[1,2,3])//通过数组形式传参

        // call和apply的作用
        Array.prototype.push.call(obj, '888')//通过调用数组的原型方法push来实现向obj中添加元素
        Array.prototype.push.apply(obj, ['666'])
        console.log(obj);
       
        
       //在对象函数原型中具有一个方法为tostring（）用来判断值的类型
       //可以利用call和apply来调用该方法来判断其他值的类型
       var sb= 'sb'
       console.log(Object.prototype.toString.call(sb));
       console.log(Object.prototype.toString.call(55));
       console.log(Object.prototype.toString.call([]));
       console.log(Object.prototype.toString.call({}));
       console.log(obj.constructor.prototype.toString.call(null));
    
    </script>
</head>

<body>

</body>

</html>